package scm.erp.sale.plan.mapper;


import org.mybatis.spring.annotation.MapperScan;
import scm.erp.sale.plan.domain.Plan;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper
@MapperScan("scm.erp.sale.plan.mapper")

public interface PlanMapper {
    /**
     * 新增
     * @param entity
     * @return
     */
    int insert(Plan.Entity entity);

    /**
     * 全部查询
     * @param searchVo
     * @return
     */
    List<Plan.Entity> select(Plan.SearchVo searchVo);

    /**
     * 通过id查询
     * @param id
     * @return
     */
    Plan.Entity selectById(String id);

    /**
     * 更新
     * @param entity
     * @return
     */
    int update(Plan.Entity entity);

    /**
     * 移除
     * @param id
     * @return
     */
    int remove(String id);

    /**
     * 删除
     * @param id
     * @return
     */
    int delete(String id);

    /**
     * 批量移除
     * @param ids
     * @return
     */
    int removeByIds(List<String> ids);

    /**
     * 批量删除
     * @param ids
     * @return
     */
    int deleteByIds(List<String> ids);
    /**
     * 更新状态
     *
     * @param id 主键
     * @return 结果
     */
    int updatePlanStatusEnable(String id);
    /**
     * 更新状态
     *
     * @param id 主键
     * @return 结果
     */
    int updatePlanStatusDisable(String id);

    /**
     * 计划编码查询
     *
     * @param planCode
     * @return
     */
    Plan.Entity searchPlanCodeVo(String planCode);

    /**
     * 客户名称模糊搜索
     * @param
     * @return
     */
    List<Plan.searchCustomerNameVo> searchCustomerName(Plan.searchCustomerNameVo searchCustomerNameVo);

    /**
     * 货物名称模糊搜索
     * @param
     * @return
     */
    List<Plan.searchFreightNameVo> searchFreightName(Plan.searchFreightNameVo searchFreightNameVo);
}

